﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using Dados.RHWS;


namespace Financeiro.Dados
{
    public class HoleriteDAO
    {
        private static string connectionSettings = ConfigurationManager.ConnectionStrings["ERP_FinanceiroConnectionString"].ConnectionString;

        // carregamos aqui os webservices
        private static RH_Servico servicoRH = new RH_Servico();
        
        // mostra o resultado da pesquisa por nome
        public static DataTable buscarNome(string nome)
        {
            try
            {
                object nomes = servicoRH.buscaFuncionarios(nome); 

                // não sabemos o formato de resultado, por isto precisamos fazer casts
                // no momento convertemos todos os tipos para DataSets
                DataTable dt = new DataTable();
            
                // aqui entram outras colunas
                dt.Columns.Add("Nome");

                // inserindo as linhas
                if (nomes is string[])
                {
                    string[] listaNomesString = (string[])nomes;
                    foreach (string st in listaNomesString)
                    {
                        DataRow row = dt.NewRow();
                        row["Nome"] = st;
                        dt.Rows.Add(st);

                    }
                }
                else if (nomes is DataSet)
                {
                    DataSet ds = (DataSet)nomes;
                    dt = ds.Tables[0];
                }
             
            //TODO: deve jogar exception se não for nenhum tipo esperado

                // retorna o DataTable
                return dt;
            }

            catch (Exception ex)
            {
                throw new Exception("Ocorreu um erro no método buscarNome: " + ex.Message);
            }

        }

        // mostra os dados dos funcionarios por nome
        public static DataTable buscarDadosFuncionario(int codigo)
        {
            try
            {
                DataSet informacoes = servicoRH.buscaDadosFuncionarios(codigo);
                    
                // não sabemos o formato de resultado, por isto precisamos fazer casts
                // no momento convertemos todos os tipos para DataSets
                
                DataTable dt = informacoes.Tables[0];

                //TODO: deve jogar exception se não for nenhum tipo esperado

                // retorna o DataTable
                return dt;
            }

            catch (Exception ex)
            {
                throw new Exception("Ocorreu um erro no método buscarNome: " + ex.Message);
            }

        }
    }
}
